package com.example.fastdfsdemo.config;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * springboot配置文件常量数据获取
 * -> @ConfigurationProperties注解方式 和 @Value注解方式的对比
 * 1.@ConfigurationProperties支持批量注入，而 @Value不支持;
 * 2.@ConfigurationProperties支持松散语法，而@Value不支持;
 * 3.@Value支持SpringEL语法，而@ConfigurationProperties不支持;
 * 4.@ConfigurationProperties支持JSR303数据校验，而@Value不支持;
 * 5.@ConfigurationProperties支持注入复杂类型，而@Value不支持
 * 他们也可以互补使用，比如某一个属性值在配置文件中没有配置，如果@Value中有的话，就可以互补了
 * @author 276834
 */
@Component
//@ConfigurationProperties(prefix = "server")
public class StaticProperties implements InitializingBean {

    /**
     * 负载均衡服务域名
     */
    public static String domainName;

    /**
     * 文件过滤类型列表
     */
    public static String suffixList;

    @Value("${nginx.domain}")
    private String tempString;

    @Value("${nginx.fileType}")
    private String tempSuffix;

    public String getTempString() {
        return tempString;
    }

    public void setTempString(String tempString) {
        this.tempString = tempString;
    }

    public String getTempSuffix() {
        return tempSuffix;
    }

    public void setTempSuffix(String tempSuffix) {
        this.tempSuffix = tempSuffix;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        domainName = this.getTempString();
        suffixList = this.getTempSuffix();
    }
}
